﻿using System;

namespace WindowsFormsApplication1
{
    class CollectionClass
    {
        /// <summary>
        /// 内部使用的当前数字
        /// </summary>
        private int s_now_int = 0;

        /// <summary>
        /// 当前的数字属性
        /// </summary>
        public int NowInt
        {
            get
            {
                return this.s_now_int;
            }
        }

        /// <summary>
        /// 定义一个事件需要的委托
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="eargs"></param>
        public delegate void CfzHandler(object sender);

        /// <summary>
        /// 定义一个CfzHandler类型的事件，
        /// </summary>
        public event CfzHandler OnChanged;

        /// <summary>
        /// 调用了OnChanged事件委托
        /// </summary>
        private void Changed()
        {
            if (this.OnChanged != null)
            {
                this.OnChanged(this);
                Console.WriteLine("这是外部触发的事件哦");
            }
            Console.WriteLine("值改变了，如果有绑定事件会先运行的哦！~");
        }

        /// <summary>
        /// 向当前数字添加
        /// </summary>
        /// <param name="p_add">要添加的数字</param>
        public void Add(int p_add)
        {
            if (p_add != 0)
            {
                this.s_now_int += p_add;
                this.Changed();
            }
        }

        /// <summary>
        /// 向当前数字添加1
        /// </summary>
        public void Add()
        {
            this.Add(1);
        }
    }
}
